#/bin/bash
# 常用方法集合
location(){ # $1 文件或目录 return 0:LOCATION=目录的绝对路径，1:失败
if [ ${1:-no} == 'no' ];then
echo 'input $1,please'
return 1
fi
if [ -f $1 ]||[ -d $1 ];then
export LOCATION=`cd $(dirname $1) && pwd`
return 0
else echo "'$1'不是一个文件或目录";return 1
fi
}
getDir(){ # $1:目录  $2:一个数字 return 0:返回目录的$2级绝对路径 1:返回空字符串或者是 $1 is not dir
temp=''
if [ -d $1 ];then
	for((i=0;i<$2;i=i+1))
	do
	temp="$temp/.."
	done
	cd "$1$temp"
		if [ $? ];then
		echo `pwd`
		return 0
		else return 1
		fi
else
echo '$1 is not dir'
return 1
fi
}
isNumber(){ # $1 数字 return 1:不是数字 0:是数字
echo $1 | grep -q '[^0-9]'
if [ $? -eq 0 ];then
return 1
fi
return 0
}
ifSuccess(){ # $1:数字 0|1 $2: 失败时候echo字符串 ;return $1==1 exit 1退出shell,$1 == 0 return 0
if [ $1 -eq 1 ];then 
echo ${2:-'$2未初始化,退出shell'}
exit 1
elif [ $1 -eq 0 ];then return 0;
else 
echo '输入参数有误 退出shell'
exit 1;
fi
}
psKillerByName(){ # $1:需要查询的进程 如 ps -ef $1;$2:若有多个进程，输入非0，可以关闭多个进程，否则执行失败。return 0:1
name=$1
if [ ${#name} -eq 0 ];then echo '(psKillerByName)第一个参数不能为空';exit 1;fi
s=`eval "ps -ef | grep $1 | awk '""!/(--color=auto)|(grep)/{print "'$2'"}'"`
eval "ps -ef | grep $1 | awk '""!/(--color=auto)|(grep)/{print "'$0'"}'"
lines=`echo $s | wc -w`
echo lines=$lines
if [ ${#s} -eq 0 ];then echo 没有查询到任何进程,exit 1;return 1
elif [ $lines -gt 1 ] && [ ${2:-0} -eq 0 ];then echo '此名查询出不止只有一个进程 exit 1';return 1;
elif [ $lines -eq 1 ] ;then
kill -9 $s
echo 已经关闭进程 $s
return 0
elif [ $lines -gt 1 ] && [ ${2:-0} -ne 0 ];then 
kill -9 $s
echo 已经关闭进程 $s
return 0
fi
}
case $1 in
	-h)
	cat $0 | grep -E '(\(\)\{)+.*return'
	;;
	*)
	eval $1
esac